#include <bits/stdc++.h>
using namespace std;
long long T,n,m,a[100010],b[100010],c[100010],d[20][10010];
int log2(long long n)
{
    int tmp=1,cnt=0;
    while(tmp<n)
    {
        tmp*=2;
        cnt++;
    }
    return cnt;
}
int main()
{
    freopen("r","arena.in",stdin);
    freopen("w","arena.out",stdout);
    cin>>n>>m;
    for(int i=1;i<=n;i++) cin>>a[i];
    for(int i=1;i<=m;i++) cin>>c[i];
    for(int i=1;i<=log2(n);i++)
    {
        for(int j=1;j<=pow(2,log2(n)-i);j+=pow(2,i))
        {
            cin>>d[i][j];
        }
    }
    cin>>T;
    for(int r=1;r<=T;r++)
    {
        int x[4];
        for(int i=0;i<=3;i++) cin>>x[i];
        for(int i=1;i<=n;i++) b[i]=a[i]^x[i%4];
        for(int i=1;i<=m;i++)
        {
            for(int i=1;i<=log2(c[i]);i++)
            {
                for(int j=1;j<=pow(2,log2(a[i])-i);j+=pow(2,i))
                {
                    int k=j+pow(2,i)-1;
                    if(!d[i][j]) swap(b[j],b[k]);
                    if(b[j]<i) swap(b[j],b[k]);
                }
            }
        }
        cout<<b[1]<<'\n';
    }
    return 0;
}
